package com.zdw.demo.vo;


import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;

/**
 * 微信退款 实体
 */
@Data
public class WechatRefundResult implements Serializable {

    // 微信支付退款单号
    private String refund_id;

    // 商户退款单号(必填)
    private String out_refund_no;

    // 原支付交易对应的微信订单号(和商户内部订单号其中一个必填)
    private String transaction_id;

    // 商户订单号(和微信订单号其中一个必填)
    private String out_trade_no;

    /**
     * 退款渠道
     * ORIGINAL：原路退款
     * BALANCE：退回到余额
     * OTHER_BALANCE：原账户异常退到其他余额账户
     * OTHER_BANKCARD：原银行卡异常退到其他银行卡
     * 示例值：ORIGINAL
     */
    private String channel;

    /**
     * 退款入账账户
     * 1）退回银行卡：{银行名称}{卡类型}{卡尾号}
     * 2）退回支付用户零钱:支付用户零钱
     * 3）退还商户:商户基本账户商户结算银行账户
     * 4）退回支付用户零钱通:支付用户零钱通
     * 示例值：招商银行信用卡0403
     */
    private String user_received_account;

    // 退款成功时间(2020-12-01T16:18:12+08:00)
    private String success_time;

    // 退款创建时间
    private String create_time;

    /**
     * 退款状态
     * SUCCESS：退款成功
     * CLOSED：退款关闭
     * PROCESSING：退款处理中
     * ABNORMAL：退款异常
     */
    private String refund_status;


    /**
     * 资金账户/退款资金来源
     * UNSETTLED : 未结算资金
     * AVAILABLE : 可用余额
     * UNAVAILABLE : 不可用余额
     * OPERATION : 运营户
     * BASIC : 基本账户（含可用余额和不可用余额）
     * 示例值：UNSETTLED
     */
    private String funds_account;

    // 订单金额信息(必填)
    private WechatAmount amount;

    // 优惠退款信息

    /**
     * 退款金额 实体
     */
    @Data
    @AllArgsConstructor
    @NoArgsConstructor
    public static class WechatAmount implements Serializable {

        // 退款金额(单位:分)
        private double refund;

        // 手续费退款金额(单位:分)
        private double refund_fee;

        // 总金额(单位:分)
        private double total;

        // 货币类型(仅支持人民币CNY)
        private String currency;

        // 用户支付金额
        private double payer_total;

        // 用户退款金额
        private double payer_refund;

        // 应结退款金额
        private double settlement_refund;

        // 应结订单金额
        private double settlement_total;

        // 优惠退款金额
        private double discount_refund;

    }


}
